/**
 * <copyright>
 * </copyright>
 *
 */
package dk.nineconsult.jmoller.mapr.mapr;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see dk.nineconsult.jmoller.mapr.mapr.MaprFactory
 * @model kind="package"
 * @generated
 */
public interface MaprPackage extends EPackage
{
  /**
   * The package name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNAME = "mapr";

  /**
   * The package namespace URI.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_URI = "http://www.nineconsult.dk/jmoller/mapr/Mapr";

  /**
   * The package namespace name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_PREFIX = "mapr";

  /**
   * The singleton instance of the package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  MaprPackage eINSTANCE = dk.nineconsult.jmoller.mapr.mapr.impl.MaprPackageImpl.init();

  /**
   * The meta object id for the '{@link dk.nineconsult.jmoller.mapr.mapr.impl.ModelImpl <em>Model</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see dk.nineconsult.jmoller.mapr.mapr.impl.ModelImpl
   * @see dk.nineconsult.jmoller.mapr.mapr.impl.MaprPackageImpl#getModel()
   * @generated
   */
  int MODEL = 0;

  /**
   * The feature id for the '<em><b>Modules</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MODEL__MODULES = 0;

  /**
   * The number of structural features of the '<em>Model</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MODEL_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link dk.nineconsult.jmoller.mapr.mapr.impl.MappingModuleImpl <em>Mapping Module</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see dk.nineconsult.jmoller.mapr.mapr.impl.MappingModuleImpl
   * @see dk.nineconsult.jmoller.mapr.mapr.impl.MaprPackageImpl#getMappingModule()
   * @generated
   */
  int MAPPING_MODULE = 1;

  /**
   * The feature id for the '<em><b>Module Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MAPPING_MODULE__MODULE_NAME = 0;

  /**
   * The feature id for the '<em><b>Mappers</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MAPPING_MODULE__MAPPERS = 1;

  /**
   * The number of structural features of the '<em>Mapping Module</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MAPPING_MODULE_FEATURE_COUNT = 2;

  /**
   * The meta object id for the '{@link dk.nineconsult.jmoller.mapr.mapr.impl.MappingImpl <em>Mapping</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see dk.nineconsult.jmoller.mapr.mapr.impl.MappingImpl
   * @see dk.nineconsult.jmoller.mapr.mapr.impl.MaprPackageImpl#getMapping()
   * @generated
   */
  int MAPPING = 2;

  /**
   * The feature id for the '<em><b>Coverage</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MAPPING__COVERAGE = 0;

  /**
   * The feature id for the '<em><b>Direction</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MAPPING__DIRECTION = 1;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MAPPING__NAME = 2;

  /**
   * The feature id for the '<em><b>Left Class</b></em>' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MAPPING__LEFT_CLASS = 3;

  /**
   * The feature id for the '<em><b>Right Class</b></em>' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MAPPING__RIGHT_CLASS = 4;

  /**
   * The feature id for the '<em><b>Mapped Features</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MAPPING__MAPPED_FEATURES = 5;

  /**
   * The number of structural features of the '<em>Mapping</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int MAPPING_FEATURE_COUNT = 6;

  /**
   * The meta object id for the '{@link dk.nineconsult.jmoller.mapr.mapr.impl.FeatureMapImpl <em>Feature Map</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see dk.nineconsult.jmoller.mapr.mapr.impl.FeatureMapImpl
   * @see dk.nineconsult.jmoller.mapr.mapr.impl.MaprPackageImpl#getFeatureMap()
   * @generated
   */
  int FEATURE_MAP = 3;

  /**
   * The feature id for the '<em><b>Left Field</b></em>' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int FEATURE_MAP__LEFT_FIELD = 0;

  /**
   * The feature id for the '<em><b>Right Field</b></em>' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int FEATURE_MAP__RIGHT_FIELD = 1;

  /**
   * The feature id for the '<em><b>Expr</b></em>' containment reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int FEATURE_MAP__EXPR = 2;

  /**
   * The number of structural features of the '<em>Feature Map</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int FEATURE_MAP_FEATURE_COUNT = 3;

  /**
   * The meta object id for the '{@link dk.nineconsult.jmoller.mapr.mapr.impl.ExpressionImpl <em>Expression</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see dk.nineconsult.jmoller.mapr.mapr.impl.ExpressionImpl
   * @see dk.nineconsult.jmoller.mapr.mapr.impl.MaprPackageImpl#getExpression()
   * @generated
   */
  int EXPRESSION = 4;

  /**
   * The feature id for the '<em><b>Value</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int EXPRESSION__VALUE = 0;

  /**
   * The feature id for the '<em><b>Int Value</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int EXPRESSION__INT_VALUE = 1;

  /**
   * The number of structural features of the '<em>Expression</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int EXPRESSION_FEATURE_COUNT = 2;


  /**
   * Returns the meta object for class '{@link dk.nineconsult.jmoller.mapr.mapr.Model <em>Model</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Model</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.Model
   * @generated
   */
  EClass getModel();

  /**
   * Returns the meta object for the containment reference list '{@link dk.nineconsult.jmoller.mapr.mapr.Model#getModules <em>Modules</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Modules</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.Model#getModules()
   * @see #getModel()
   * @generated
   */
  EReference getModel_Modules();

  /**
   * Returns the meta object for class '{@link dk.nineconsult.jmoller.mapr.mapr.MappingModule <em>Mapping Module</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Mapping Module</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.MappingModule
   * @generated
   */
  EClass getMappingModule();

  /**
   * Returns the meta object for the attribute '{@link dk.nineconsult.jmoller.mapr.mapr.MappingModule#getModuleName <em>Module Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Module Name</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.MappingModule#getModuleName()
   * @see #getMappingModule()
   * @generated
   */
  EAttribute getMappingModule_ModuleName();

  /**
   * Returns the meta object for the containment reference list '{@link dk.nineconsult.jmoller.mapr.mapr.MappingModule#getMappers <em>Mappers</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Mappers</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.MappingModule#getMappers()
   * @see #getMappingModule()
   * @generated
   */
  EReference getMappingModule_Mappers();

  /**
   * Returns the meta object for class '{@link dk.nineconsult.jmoller.mapr.mapr.Mapping <em>Mapping</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Mapping</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.Mapping
   * @generated
   */
  EClass getMapping();

  /**
   * Returns the meta object for the attribute '{@link dk.nineconsult.jmoller.mapr.mapr.Mapping#getCoverage <em>Coverage</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Coverage</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.Mapping#getCoverage()
   * @see #getMapping()
   * @generated
   */
  EAttribute getMapping_Coverage();

  /**
   * Returns the meta object for the attribute '{@link dk.nineconsult.jmoller.mapr.mapr.Mapping#getDirection <em>Direction</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Direction</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.Mapping#getDirection()
   * @see #getMapping()
   * @generated
   */
  EAttribute getMapping_Direction();

  /**
   * Returns the meta object for the attribute '{@link dk.nineconsult.jmoller.mapr.mapr.Mapping#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.Mapping#getName()
   * @see #getMapping()
   * @generated
   */
  EAttribute getMapping_Name();

  /**
   * Returns the meta object for the reference '{@link dk.nineconsult.jmoller.mapr.mapr.Mapping#getLeftClass <em>Left Class</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the reference '<em>Left Class</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.Mapping#getLeftClass()
   * @see #getMapping()
   * @generated
   */
  EReference getMapping_LeftClass();

  /**
   * Returns the meta object for the reference '{@link dk.nineconsult.jmoller.mapr.mapr.Mapping#getRightClass <em>Right Class</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the reference '<em>Right Class</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.Mapping#getRightClass()
   * @see #getMapping()
   * @generated
   */
  EReference getMapping_RightClass();

  /**
   * Returns the meta object for the containment reference list '{@link dk.nineconsult.jmoller.mapr.mapr.Mapping#getMappedFeatures <em>Mapped Features</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Mapped Features</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.Mapping#getMappedFeatures()
   * @see #getMapping()
   * @generated
   */
  EReference getMapping_MappedFeatures();

  /**
   * Returns the meta object for class '{@link dk.nineconsult.jmoller.mapr.mapr.FeatureMap <em>Feature Map</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Feature Map</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.FeatureMap
   * @generated
   */
  EClass getFeatureMap();

  /**
   * Returns the meta object for the reference '{@link dk.nineconsult.jmoller.mapr.mapr.FeatureMap#getLeftField <em>Left Field</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the reference '<em>Left Field</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.FeatureMap#getLeftField()
   * @see #getFeatureMap()
   * @generated
   */
  EReference getFeatureMap_LeftField();

  /**
   * Returns the meta object for the reference '{@link dk.nineconsult.jmoller.mapr.mapr.FeatureMap#getRightField <em>Right Field</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the reference '<em>Right Field</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.FeatureMap#getRightField()
   * @see #getFeatureMap()
   * @generated
   */
  EReference getFeatureMap_RightField();

  /**
   * Returns the meta object for the containment reference '{@link dk.nineconsult.jmoller.mapr.mapr.FeatureMap#getExpr <em>Expr</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference '<em>Expr</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.FeatureMap#getExpr()
   * @see #getFeatureMap()
   * @generated
   */
  EReference getFeatureMap_Expr();

  /**
   * Returns the meta object for class '{@link dk.nineconsult.jmoller.mapr.mapr.Expression <em>Expression</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Expression</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.Expression
   * @generated
   */
  EClass getExpression();

  /**
   * Returns the meta object for the attribute '{@link dk.nineconsult.jmoller.mapr.mapr.Expression#getValue <em>Value</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Value</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.Expression#getValue()
   * @see #getExpression()
   * @generated
   */
  EAttribute getExpression_Value();

  /**
   * Returns the meta object for the attribute '{@link dk.nineconsult.jmoller.mapr.mapr.Expression#getIntValue <em>Int Value</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Int Value</em>'.
   * @see dk.nineconsult.jmoller.mapr.mapr.Expression#getIntValue()
   * @see #getExpression()
   * @generated
   */
  EAttribute getExpression_IntValue();

  /**
   * Returns the factory that creates the instances of the model.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the factory that creates the instances of the model.
   * @generated
   */
  MaprFactory getMaprFactory();

  /**
   * <!-- begin-user-doc -->
   * Defines literals for the meta objects that represent
   * <ul>
   *   <li>each class,</li>
   *   <li>each feature of each class,</li>
   *   <li>each enum,</li>
   *   <li>and each data type</li>
   * </ul>
   * <!-- end-user-doc -->
   * @generated
   */
  interface Literals
  {
    /**
     * The meta object literal for the '{@link dk.nineconsult.jmoller.mapr.mapr.impl.ModelImpl <em>Model</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see dk.nineconsult.jmoller.mapr.mapr.impl.ModelImpl
     * @see dk.nineconsult.jmoller.mapr.mapr.impl.MaprPackageImpl#getModel()
     * @generated
     */
    EClass MODEL = eINSTANCE.getModel();

    /**
     * The meta object literal for the '<em><b>Modules</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference MODEL__MODULES = eINSTANCE.getModel_Modules();

    /**
     * The meta object literal for the '{@link dk.nineconsult.jmoller.mapr.mapr.impl.MappingModuleImpl <em>Mapping Module</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see dk.nineconsult.jmoller.mapr.mapr.impl.MappingModuleImpl
     * @see dk.nineconsult.jmoller.mapr.mapr.impl.MaprPackageImpl#getMappingModule()
     * @generated
     */
    EClass MAPPING_MODULE = eINSTANCE.getMappingModule();

    /**
     * The meta object literal for the '<em><b>Module Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute MAPPING_MODULE__MODULE_NAME = eINSTANCE.getMappingModule_ModuleName();

    /**
     * The meta object literal for the '<em><b>Mappers</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference MAPPING_MODULE__MAPPERS = eINSTANCE.getMappingModule_Mappers();

    /**
     * The meta object literal for the '{@link dk.nineconsult.jmoller.mapr.mapr.impl.MappingImpl <em>Mapping</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see dk.nineconsult.jmoller.mapr.mapr.impl.MappingImpl
     * @see dk.nineconsult.jmoller.mapr.mapr.impl.MaprPackageImpl#getMapping()
     * @generated
     */
    EClass MAPPING = eINSTANCE.getMapping();

    /**
     * The meta object literal for the '<em><b>Coverage</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute MAPPING__COVERAGE = eINSTANCE.getMapping_Coverage();

    /**
     * The meta object literal for the '<em><b>Direction</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute MAPPING__DIRECTION = eINSTANCE.getMapping_Direction();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute MAPPING__NAME = eINSTANCE.getMapping_Name();

    /**
     * The meta object literal for the '<em><b>Left Class</b></em>' reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference MAPPING__LEFT_CLASS = eINSTANCE.getMapping_LeftClass();

    /**
     * The meta object literal for the '<em><b>Right Class</b></em>' reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference MAPPING__RIGHT_CLASS = eINSTANCE.getMapping_RightClass();

    /**
     * The meta object literal for the '<em><b>Mapped Features</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference MAPPING__MAPPED_FEATURES = eINSTANCE.getMapping_MappedFeatures();

    /**
     * The meta object literal for the '{@link dk.nineconsult.jmoller.mapr.mapr.impl.FeatureMapImpl <em>Feature Map</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see dk.nineconsult.jmoller.mapr.mapr.impl.FeatureMapImpl
     * @see dk.nineconsult.jmoller.mapr.mapr.impl.MaprPackageImpl#getFeatureMap()
     * @generated
     */
    EClass FEATURE_MAP = eINSTANCE.getFeatureMap();

    /**
     * The meta object literal for the '<em><b>Left Field</b></em>' reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference FEATURE_MAP__LEFT_FIELD = eINSTANCE.getFeatureMap_LeftField();

    /**
     * The meta object literal for the '<em><b>Right Field</b></em>' reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference FEATURE_MAP__RIGHT_FIELD = eINSTANCE.getFeatureMap_RightField();

    /**
     * The meta object literal for the '<em><b>Expr</b></em>' containment reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference FEATURE_MAP__EXPR = eINSTANCE.getFeatureMap_Expr();

    /**
     * The meta object literal for the '{@link dk.nineconsult.jmoller.mapr.mapr.impl.ExpressionImpl <em>Expression</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see dk.nineconsult.jmoller.mapr.mapr.impl.ExpressionImpl
     * @see dk.nineconsult.jmoller.mapr.mapr.impl.MaprPackageImpl#getExpression()
     * @generated
     */
    EClass EXPRESSION = eINSTANCE.getExpression();

    /**
     * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute EXPRESSION__VALUE = eINSTANCE.getExpression_Value();

    /**
     * The meta object literal for the '<em><b>Int Value</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute EXPRESSION__INT_VALUE = eINSTANCE.getExpression_IntValue();

  }

} //MaprPackage
